The boot environment for computers presents significant challenges to innovation within the hardware and software industries. Each new platform capability or hardware innovation requires firmware developers to craft increasingly complex solutions, and often requires Operating System (OS) developers to make changes to their boot code before customers can benefit from the innovation. This can be a time-consuming process requiring a significant investment of resources. The hardware and software industries have attempted to allow the platform and OS to evolve and innovate independently of one another.
To permit such independent innovation and maintain necessary communication between an OS and platform firmware (any software that is included in read-only memory (ROM)), an interface having an additional layer of firmware code provides for the abstraction of the OS and all higher level software from the firmware. The interface operates in what is referred to as a pre-boot environment as well as providing some additional run-time capabilities. Previous attempts to develop such an interface have required the
OS to have specific knowledge of the workings of certain hardware devices. Previous attempts at developing the interface were not effective and did not allow for the dynamic management of those devices in the pre-boot environment and in some run-time environments.
Specifically, configuring, monitoring and debugging conventional computers and/or machines have required a physical presence of an administrator to perform these tasks. Some of these tasks have also required additional hardware to be operatively connected to the computer before the tasks can be performed. Furthermore, conventional computers have been limited in what information they can provide to a remote administrator and in what tasks can be initiated remotely. Most conventional computers have required the assistance of a loaded and functional operating system to communicate and cooperate with a remote administrator. All classes of computers, including enterprise class system, can benefit from remote configuration management, but the benefit becomes much more pronounced when systems both large and small are considered that have multiple computers located in multiple physical locations, all connected to a network that allows access by a single remote administrator.